<?php
namespace app\common\job;

use app\common\model\ShopGoodsModel;
use think\queue\Job;

class Goods {

    /**
     * fire方法是消息队列默认调用的方法
     * @param Job            $job      当前的任务对象
     * @param array|mixed    $data     发布任务时自定义的数据['promotionType'=>1]
     */
    public function fire(Job $job,$data){
        $fun = $data['fun'];
        $time = $data['time']; //重复间隔时间
        $isJobDone = $this->$fun($data);
        if ($isJobDone) { //执行成功
            $job->release($time); //按间隔时间重发任务
        }else{
            if ($job->attempts() > 3) { //重试三次删除任务
                $job->delete();
            }else{
                $job->release($time); //按间隔时间重发任务
            }
        }
    }

    /**
     * 刷新商品状态
     * @param array|mixed    $data     发布任务时自定义的数据
     * @return boolean                 任务执行的结果
     */
    private function refreshPromotion($data) {
        $model=new ShopGoodsModel();
        $result=$model->refreshPromotionGoods($data['promotionType']);
        return $result;
    }

    /**
     * 检测集采订单状态
     * @param array|mixed    $data     发布任务时自定义的数据
     * @return boolean                 任务执行的结果
     */
    private function checkGroupbuy($data) {
        //git
    }
}